package com.ruoyi.labdanger.service;

import java.util.List;

import com.ruoyi.labdanger.domain.LabApplyPurchaseDetails;
import com.ruoyi.labdata.domain.LabFlowTaskLog;

/**
 * 在用化学品Service接口
 * 
 * @author winner pan
 * @date 2022-03-04
 */
public interface ILabApplyPurchaseDetailsService {
	/**
	 * 查询在用化学品
	 * 
	 * @param purchaseDetailId
	 *            在用化学品ID
	 * @return 在用化学品
	 */
	public LabApplyPurchaseDetails selectLabApplyPurchaseDetailsById(Long purchaseDetailId);

	/**
	 * 查询在用化学品列表
	 * 
	 * @param labApplyPurchaseDetails
	 *            在用化学品
	 * @return 在用化学品集合
	 */
	public List<LabApplyPurchaseDetails> selectLabApplyPurchaseDetailsList(
			LabApplyPurchaseDetails labApplyPurchaseDetails);

	/**
	 * 新增在用化学品
	 * 
	 * @param labApplyPurchaseDetails
	 *            在用化学品
	 * @return 结果
	 */
	public int insertLabApplyPurchaseDetails(LabApplyPurchaseDetails labApplyPurchaseDetails);

	/**
	 * 修改在用化学品
	 * 
	 * @param labApplyPurchaseDetails
	 *            在用化学品
	 * @return 结果
	 */
	public int updateLabApplyPurchaseDetails(LabApplyPurchaseDetails labApplyPurchaseDetails);

	/**
	 * 批量删除在用化学品
	 * 
	 * @param purchaseDetailIds
	 *            需要删除的在用化学品ID
	 * @return 结果
	 */
	public int deleteLabApplyPurchaseDetailsByIds(Long[] purchaseDetailIds);

	/**
	 * 删除在用化学品信息
	 * 
	 * @param purchaseDetailId
	 *            在用化学品ID
	 * @return 结果
	 */
	public int deleteLabApplyPurchaseDetailsById(Long purchaseDetailId);

	public int updateDetailsQuantityById(LabApplyPurchaseDetails labApplyPurchaseDetails);

	public int updateApproval(Long instanceId);

	public int scanoutIventory(LabApplyPurchaseDetails labApplyPurchaseDetails);

	public int scaninIventory(LabApplyPurchaseDetails labApplyPurchaseDetails);

	public int updateScanIn(LabApplyPurchaseDetails labApplyPurchaseDetails);

	public LabApplyPurchaseDetails getScanInInfo(Long purchaseDetailId);

	public int updatePuchaseId(LabApplyPurchaseDetails labApplyPurchaseDetails);
	
	public int updateRemoved(LabApplyPurchaseDetails labApplyPurchaseDetails);
	
	public int updateQuantity(LabApplyPurchaseDetails labApplyPurchaseDetails, LabFlowTaskLog labFlowTaskLog);
	public List<LabApplyPurchaseDetails> queryInventory(LabApplyPurchaseDetails labApplyPurchaseDetails);
	public List<LabApplyPurchaseDetails>  queryScaninData(LabApplyPurchaseDetails labApplyPurchaseDetails);
}
